// // 这样的算法是可以过，但是时间复杂度太大
// #include <iostream>

// using namespace std;

// int main(){
//     int t; scanf("%d", &t);
//     int a, b, c, d;
//     while (t--){
//         cin >> a >> b >> c >> d;
//         if (b > c) {
//             cout << -1 << endl;
//             continue;
//         }
//         int count = 0;
//         int tc = c;
//         while (a > 0){
//             tc -= b;
//             if (tc <= 0) {
//                 count++;
//                 tc = c;
//                 continue;
//             }
//             a -= d;
//         }
//         cout << count << endl;
//     }
//     return 0;
// }

#include <iostream>

using namespace std;
int main(){
    int t; scanf("%d", &t);
    int a, b, c, d;
    while (t--){
        scanf("%d%d%d%d", &a, &b, &c, &d);
        if (b >= c) {
            cout << -1 << endl;
            continue;
        }
//         怪物被攻击多少次才会die
        int c1 = (c / b) + (c % b ? 1 : 0);
//        玩家杀一只怪物会被攻击多少次
        int c2 = c1 - 1;
//         杀一只怪物玩家会掉多少血
        int x = c2 * d;
        int count = a / x - (a % x == 0 ? 1 : 0);
        
        cout << count << endl;
    }
    return 0;
}